#pragma once

#include "../SGD Wrappers/SGD_Handle.h"
#include "../SGD Wrappers/SGD_Color.h"
#include "../SGD Wrappers/SGD_Geometry.h"


class BitmapFont
{
public:
	/**********************************************************/
	// Constructor & Destructor
	BitmapFont( void )	= default;
	~BitmapFont( void )	= default;

	
	/**********************************************************/
	// Initialize & Terminate
	void Initialize( void );	// should have parameters
	void Terminate ( void );

	
	/**********************************************************/
	// Draw
	void Draw( const char* output, SGD::Point position,
			   float scale, SGD::Color color ) const;
	
	void Draw( const wchar_t* output, SGD::Point position,
			   float scale, SGD::Color color ) const;

private:
	/**********************************************************/
	// image
	SGD::HTexture	m_hImage			= SGD::INVALID_HANDLE;

	// cell data
	int				m_nCharWidth		= 0;
	int				m_nCharHeight		= 0;
	int				m_nNumRows			= 0;
	int				m_nNumCols			= 0;

	// font info
	char			m_cFirstChar		= '\0';
	bool			m_bOnlyUppercase	= false;
};